Setup

Load packages

library(here) # file organisation & folder location
library(tidyverse) # data wrangling & plotting
#library(plotrix) # for calculating standard error
library(scales) # scales on plots
library(lme4) # for linear mixed models
library(afex) # for linear mixed models
library(psych) # for factor analysis

R / package versions used

R.Version() 
## $platform
## [1] "x86_64-w64-mingw32"
## 
## $arch
## [1] "x86_64"
## 
## $os
## [1] "mingw32"
## 
## $system
## [1] "x86_64, mingw32"
## 
## $status
## [1] ""
## 
## $major
## [1] "4"
## 
## $minor
## [1] "0.5"
## 
## $year
## [1] "2021"
## 
## $month
## [1] "03"
## 
## $day
## [1] "31"
## 
## $`svn rev`
## [1] "80133"
## 
## $language
## [1] "R"
## 
## $version.string
## [1] "R version 4.0.5 (2021-03-31)"
## 
## $nickname
## [1] "Shake and Throw"
packageVersion('here')
## [1] '1.0.1'
packageVersion('tidyverse')
## [1] '1.3.1'
#packageVersion('plotrix') 
packageVersion('scales') 
## [1] '1.1.1'
packageVersion('lme4') 
## [1] '1.1.27.1'
packageVersion('afex')
## [1] '0.28.1'
packageVersion('psych')
## [1] '2.1.6'

Read pre-wrangled data (see 00-wrangling-setup.Rmd script)

here::here()
## [1] "C:/Users/freya/Desktop/PhD/3 SLI-Aptitude"
apt <- readRDS(here("data", "apt-data.rds"))
apt <- as_tibble(apt)
head(apt)
## # A tibble: 6 x 46
##   session    group ppt   status   selected continue L1_bsl prior_BSL age_s1
##   <fct>      <fct> <fct> <fct>       <dbl>    <dbl>  <dbl>     <dbl>  <dbl>
## 1 pre-degree pilot HW002 rejected        0        0     NA        NA     NA
## 2 pre-degree pilot HW004 rejected        0        0     NA        NA     NA
## 3 pre-degree pilot HW009 rejected        0        0     NA        NA     NA
## 4 pre-degree pilot HW011 rejected        0        0     NA        NA     NA
## 5 pre-degree pilot HW012 rejected        0        0     NA        NA     NA
## 6 pre-degree pilot HW014 rejected        0        0     NA        NA     NA
## # ... with 37 more variables: nback_lett <dbl>, nback_spat <dbl>,
## #   nback_comb <dbl>, corsi_bspan <dbl>, corsi_score <dbl>, corsi_corr <dbl>,
## #   corsi_mspan <dbl>, kirk_ceil <dbl>, kirk_raw <dbl>, kirk_acc <dbl>,
## #   kbit_ceil <dbl>, kbit_raw <dbl>, kbit_acc <dbl>, dspan_mem <dbl>,
## #   dspan_corr <dbl>, dspan_time <dbl>, mr2d_acc <dbl>, mr2d_rt <dbl>,
## #   mr2d_sats <dbl>, mr3d_acc <dbl>, mr3d_rt <dbl>, mr3d_sats <dbl>,
## #   bis_tot <dbl>, bis_att <dbl>, bis_mot <dbl>, bis_nplan <dbl>, ...

Filter out participants who did not progress beyond interview

apt <- apt %>% filter(status != "rejected")

Plots

Effects of predictors on outcome variables

Effects of predictors on BSL Grades

Dual N-Back vs BSL Grades

Letter Matching
# Create wider pivot table
nback_lett_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, nback_lett, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_lett, grade_bsl))

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 1st year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 2nd year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 1st year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 2nd year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 2nd year?
nback_lett_grade_bsl_wide %>%
  ggplot(aes(x = `nback_lett_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Spatial Matching
# Create wider pivot table
nback_spat_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, nback_spat, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_spat, grade_bsl))

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 1st year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degre")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict BSL grades at the end of 2nd year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 1st year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 2nd year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 2nd year?
nback_spat_grade_bsl_wide %>%
  ggplot(aes(x = `nback_spat_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Combined accuracy
# Create wider pivot table
nback_comb_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, nback_comb, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_comb, grade_bsl))

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict BSL grades at the end of 1st year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict BSL grades at the end of 2nd year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 1st year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict BSL grades at the end of 2nd year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 2 years of study predict BSL grades at the end of 2nd year?
nback_comb_grade_bsl_wide %>%
  ggplot(aes(x = `nback_comb_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

###### Correlations

nback_comb_grade_bsl_wide %>% 
  filter(`nback_comb_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.170
nback_comb_grade_bsl_wide %>% 
  filter(`nback_comb_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0798
nback_comb_grade_bsl_wide %>% 
  filter(`nback_comb_1st year`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_1st year`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.397
nback_comb_grade_bsl_wide %>% 
  filter(`nback_comb_1st year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_1st year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.489
nback_comb_grade_bsl_wide %>% 
  filter(`nback_comb_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%
  summarize(AccCOR=cor(`nback_comb_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.228

Corsi Blocks vs BSL Grades

# Create wider pivot table
corsi_corr_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, corsi_corr, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_corr, grade_bsl))

# Do Correct Responses on the Corsi Blocks Task pre-degree predict BSL grades at the end of 1st year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task pre-degree predict BSL grades at the end of 2nd year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 1st year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict BSL grades at the end of 2nd year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 2 years of study predict BSL grades at the end of 2nd year?
corsi_corr_grade_bsl_wide %>%
  ggplot(aes(x = `corsi_corr_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Kirklees Sentence Reading vs BSL Grades

# Create wider pivot table
kirk_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kirk_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_acc, grade_bsl))

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 1st year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict BSL grades at the end of 2nd year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 1st year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict BSL grades at the end of 2nd year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study predict BSL grades at the end of 2nd year?
kirk_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kirk_acc_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the Kirklees Sentence Reading Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Correlations
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.433
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.108
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_1st year`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1st year`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.340
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_1st year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1st year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##    AccCOR
##     <dbl>
## 1 -0.0910
kirk_acc_grade_bsl_wide %>% 
  filter(`kirk_acc_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%
  summarize(AccCOR=cor(`kirk_acc_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0908

KBIT-2 Matrices vs BSL Grades

# Create wider pivot table
kbit_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, kbit_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_acc, grade_bsl))

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 1st year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 2 rows containing non-finite values (stat_smooth).
## Warning: Removed 2 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict BSL grades at the end of 2nd year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 6 rows containing non-finite values (stat_smooth).
## Warning: Removed 6 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 1st year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict BSL grades at the end of 2nd year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 2 years of study predict BSL grades at the end of 2nd year?
kbit_acc_grade_bsl_wide %>%
  ggplot(aes(x = `kbit_acc_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

###### Correlations

kbit_acc_grade_bsl_wide %>% 
  filter(`kbit_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`kbit_acc_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.118
kbit_acc_grade_bsl_wide %>% 
  filter(`kbit_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`kbit_acc_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0354
kbit_acc_grade_bsl_wide %>% 
  filter(`kbit_acc_1st year`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`kbit_acc_1st year`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##    AccCOR
##     <dbl>
## 1 -0.0442
kbit_acc_grade_bsl_wide %>% 
  filter(`kbit_acc_1st year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`kbit_acc_1st year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.175
kbit_acc_grade_bsl_wide %>% 
  filter(`kbit_acc_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%
  summarize(AccCOR=cor(`kbit_acc_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.409

Digit Span vs BSL Grades

Accuracy
# Create wider pivot table
dspan_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, dspan_corr, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_corr, grade_bsl))

# Does Accuracy on the Digit Span Task pre-degree predict BSL grades at the end of 1st year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task pre-degree predict BSL grades at the end of 2nd year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).

# No datapoints for Digit Span @ '1 year of study'

# Does Accuracy on the Digit Span Task after 2 years of study predict BSL grades at the end of 2nd year?
dspan_acc_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_corr_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Memory Span
# Create wider pivot table
dspan_mem_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, dspan_mem, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_mem, grade_bsl))

# Does Memory Span on the Digit Span Task pre-degree predict BSL grades at the end of 1st year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# Does Memory Span on the Digit Span Task pre-degree predict BSL grades at the end of 2nd year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 19 rows containing non-finite values (stat_smooth).
## Warning: Removed 19 rows containing missing values (geom_point).

# No datapoints for Digit Span @ 1 year of study session

# Does Memory Span on the Digit Span Task after 2 years of study predict BSL grades at the end of 2nd year?
dspan_mem_grade_bsl_wide %>%
  ggplot(aes(x = `dspan_mem_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Memory Span on the Digit Span Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

2D Mental Rotation vs BSL Grades

Accuracy
# Create wider pivot table
mr2d_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr2d_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_acc, grade_bsl))

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 1st year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 2nd year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr2d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_acc_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 2D Mental Rotation Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

###### Correlations

mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.128
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.136
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_1st year`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1st year`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.523
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_1st year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1st year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.722
mr2d_acc_grade_bsl_wide %>% 
  filter(`mr2d_acc_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%   
  summarize(AccCOR=cor(`mr2d_acc_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.288
RT
# Create wider pivot table
mr2d_rt_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr2d_rt, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_rt, grade_bsl))

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 1st year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_1st year`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict BSL grades at the end of 2nd year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_1st year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr2d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr2d_rt_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.550
# strongly driven by an outlier

mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.100
# strongly driven by an outlier

mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_1st year`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1st year`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.473
# strongly driven by an outlier


mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_1st year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1st year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.219
mr2d_rt_grade_bsl_wide %>% 
  filter(`mr2d_rt_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%  
  summarize(rtCOR=cor(`mr2d_rt_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.326

3D Mental Rotation vs BSL Grades

Accuracy
# Create wider pivot table
mr3d_acc_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr3d_acc, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_acc, grade_bsl))

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 13 rows containing non-finite values (stat_smooth).
## Warning: Removed 13 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# only 2 datapoints for 3DMR @ timepoint 2

# Does Accuracy on the 3D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr3d_acc_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_acc_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Accuracy on the 3D Mental Rotation Task after 2 years") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

###### Correlations

mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.266
mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.114
mr3d_acc_grade_bsl_wide %>% 
  filter(`mr3d_acc_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%   
  summarize(AccCOR=cor(`mr3d_acc_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.604
RT
# Create wider pivot table
mr3d_rt_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, mr3d_rt, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_rt, grade_bsl))

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 1st year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_bsl_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 1st year?", y = "1st year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 13 rows containing non-finite values (stat_smooth).
## Warning: Removed 13 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict BSL grades at the end of 2nd year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_bsl_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 16 rows containing non-finite values (stat_smooth).
## Warning: Removed 16 rows containing missing values (geom_point).

# only 2 datapoints for 3DMR @ timepoint 2


# Does Reaction Time on the 3D Mental Rotation Task after 2 years of study predict BSL grades at the end of 2nd year?
mr3d_rt_grade_bsl_wide %>%
  ggplot(aes(x = `mr3d_rt_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task after 2 years of study\npredict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = "Reaction Time on the 3D Mental Rotation Task after 2 years of study") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

###### Correlations

mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_1st year` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_bsl_1st year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.136
mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.164
mr3d_rt_grade_bsl_wide %>% 
  filter(`mr3d_rt_2nd year`!= "NA") %>% 
  filter(`grade_bsl_2nd year` != "NA") %>%   
  summarize(rtCOR=cor(`mr3d_rt_2nd year`, 
                       `grade_bsl_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.294

Barratt Impulsiveness Scale vs BSL Grades

Total Impulsiveness
# Create wider pivot table
bis_tot_grade_bsl_wide <- apt %>% 
  select(session, group, ppt, bis_tot, grade_bsl) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_tot, grade_bsl))

# Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study predict BSL grades at the end of 2nd year?
bis_tot_grade_bsl_wide %>%
  filter(`bis_tot_2nd year` != "na") %>% 
  filter(`grade_bsl_2nd year` != "na") %>% 
  ggplot(aes(x = `bis_tot_2nd year`, y = `grade_bsl_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Total Impulsiveness on the Barratt Impulsiveness Scale\nafter 2 years of study predict BSL grades at the end of 2nd year?", y = "2nd year BSL grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

Not sure why geom_smooth() line does not appear in knitted output (works in .Rmd file)

Effects of predictors on Interpreting Grades

Dual N-Back vs Interpreting Grades

Letter Matching
# Create wider pivot table
nback_lett_grade_terp_wide <- apt %>% 
  select(session, group, ppt, nback_lett, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_lett, grade_terp))

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 1st year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 2nd year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
nback_lett_grade_terp_wide %>%
  ggplot(aes(x = `nback_lett_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Letter Matching on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Letter Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Spatial Matching
# Create wider pivot table
nback_spat_grade_terp_wide <- apt %>% 
  select(session, group, ppt, nback_spat, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_spat, grade_terp))

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 1st year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degre")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 2nd year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
nback_spat_grade_terp_wide %>%
  ggplot(aes(x = `nback_spat_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy in Spatial Matching on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy in Spatial Matching on the Dual N-Back Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Combined accuracy
# Create wider pivot table
nback_comb_grade_terp_wide <- apt %>% 
  select(session, group, ppt, nback_comb, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(nback_comb, grade_terp))

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 1st year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Combined Accuracy on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task pre-degree predict Interpreting Grades at the end of 2nd year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Combined Accuracy on the Dual N-Back Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Combined Accuracy on the Dual N-Back Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

# Does Combined Accuracy on the Dual N-Back Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
nback_comb_grade_terp_wide %>%
  ggplot(aes(x = `nback_comb_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Combined Accuracy on the Dual N-Back Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Combined Accuracy on the Dual N-Back Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

###### Correlations

nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_pre-degree`, 
                       `grade_terp_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.111
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.328
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_1st year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`nback_comb_1st year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.526
nback_comb_grade_terp_wide %>% 
  filter(`nback_comb_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%   
  summarize(AccCOR=cor(`nback_comb_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0265

Corsi Blocks vs Interpreting Grades

# Create wider pivot table
corsi_corr_grade_terp_wide <- apt %>% 
  select(session, group, ppt, corsi_corr, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(corsi_corr, grade_terp))

# Do Correct Responses on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 1st year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task pre-degree predict Interpreting Grades at the end of 2nd year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

# Do Correct Responses on the Corsi Blocks Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
corsi_corr_grade_terp_wide %>%
  ggplot(aes(x = `corsi_corr_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Do Correct Responses on the Corsi Blocks Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Kirklees Sentence Reading vs Interpreting Grades

# Create wider pivot table
kirk_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kirk_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kirk_acc, grade_terp))

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 1st year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task pre-degree predict Interpreting Grades at the end of 2nd year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task after 1 year")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kirk_acc_grade_terp_wide %>%
  ggplot(aes(x = `kirk_acc_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the Kirklees Sentence Reading Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the Kirklees Sentence Reading Task after 2 years")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Correlations
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_terp_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.400
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.305
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_1st year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`kirk_acc_1st year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.225
kirk_acc_grade_terp_wide %>% 
  filter(`kirk_acc_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%
  summarize(AccCOR=cor(`kirk_acc_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.214

KBIT-2 Matrices vs Interpreting Grades

# Create wider pivot table
kbit_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, kbit_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(kbit_acc, grade_terp))

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 1st year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task pre-degree predict Interpreting Grades at the end of 2nd year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the KBIT-2 Matrices Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
kbit_acc_grade_terp_wide %>%
  ggplot(aes(x = `kbit_acc_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the KBIT-2 Matrices Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 22 rows containing non-finite values (stat_smooth).
## Warning: Removed 22 rows containing missing values (geom_point).

Digit Span vs Interpreting Grades

# Create wider pivot table
dspan_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, dspan_corr, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(dspan_corr, grade_terp))

# Does Accuracy on the Digit Span Task pre-degree predict Interpreting Grades at the end of 1st year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task pre-degree predict Interpreting Grades at the end of 2nd year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 20 rows containing non-finite values (stat_smooth).
## Warning: Removed 20 rows containing missing values (geom_point).

# Does Accuracy on the Digit Span Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
dspan_acc_grade_terp_wide %>%
  ggplot(aes(x = `dspan_corr_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Accuracy on the Digit Span Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`dspan_corr_pre-degree`, 
                       `grade_terp_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.124
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`dspan_corr_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.581
dspan_acc_grade_terp_wide %>% 
  filter(`dspan_corr_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%
  summarize(AccCOR=cor(`dspan_corr_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.266

2D Mental Rotation vs Interpreting Grades

Accuracy
# Create wider pivot table
mr2d_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr2d_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_acc, grade_terp))

# Does Accuracy on the 2D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task after 1 year of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

# Does Accuracy on the 2D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr2d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_acc_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 2D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 2D Mental Rotation Task after 2 years of study")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 0.0795
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_1st year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`mr2d_acc_1st year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.614
mr2d_acc_grade_terp_wide %>% 
  filter(`mr2d_acc_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%   
  summarize(AccCOR=cor(`mr2d_acc_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.288
RT
# Create wider pivot table
mr2d_rt_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr2d_rt, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr2d_rt, grade_terp))

# Does Reaction Time on the 2D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).
## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 1 year of study predict Interpreting Grades at the end of 2nd year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_1st year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 1 year of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

# Does Reaction Time on the 2D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr2d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr2d_rt_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title = "Does Reaction Time on the 2D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 23 rows containing non-finite values (stat_smooth).

## Warning: Removed 23 rows containing missing values (geom_point).

Correlations
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.239
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_1st year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(rtCOR=cor(`mr2d_rt_1st year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.107
mr2d_rt_grade_terp_wide %>% 
  filter(`mr2d_rt_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%   
  summarize(rtCOR=cor(`mr2d_rt_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.139

3D Mental Rotation vs Interpreting Grades

Accuracy
# Create wider pivot table
mr3d_acc_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr3d_acc, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_acc, grade_terp))

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 1st year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title = "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 1st year?", y = "1st year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree")
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  geom_point() +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).

# Does Accuracy on the 3D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr3d_acc_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_acc_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  scale_x_continuous(labels = scales::percent_format(accuracy = 1L)) +
  theme_minimal() +
  labs(title= "Does Accuracy on the 3D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Accuracy on the 3D Mental Rotation Task after 2 years") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

Correlations
mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1st year` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_terp_1st year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1 -0.127
mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(AccCOR=cor(`mr3d_acc_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.221
mr3d_acc_grade_terp_wide %>% 
  filter(`mr3d_acc_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%   
  summarize(AccCOR=cor(`mr3d_acc_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##   AccCOR
##    <dbl>
## 1  0.552
RT
# Create wider pivot table
mr3d_rt_grade_terp_wide <- apt %>% 
  select(session, group, ppt, mr3d_rt, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(mr3d_rt, grade_terp))

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 1st year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_terp_1st year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 25 rows containing non-finite values (stat_smooth).
## Warning: Removed 25 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task pre-degree predict Interpreting Grades at the end of 2nd year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_pre-degree`, y = `grade_terp_2nd year`)) +
  geom_smooth(method= "lm") +
  geom_point() +
  theme_minimal()+
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task pre-degree\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task pre-degree") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 17 rows containing non-finite values (stat_smooth).
## Warning: Removed 17 rows containing missing values (geom_point).

# Does Reaction Time on the 3D Mental Rotation Task after 2 years of study predict Interpreting Grades at the end of 2nd year?
mr3d_rt_grade_terp_wide %>%
  ggplot(aes(x = `mr3d_rt_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Reaction Time on the 3D Mental Rotation Task after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = "Reaction Time on the 3D Mental Rotation Task after 2 years of study") 
## `geom_smooth()` using formula 'y ~ x'
## Warning: Removed 21 rows containing non-finite values (stat_smooth).
## Warning: Removed 21 rows containing missing values (geom_point).

Correlations
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_1st year` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_terp_1st year`))
## # A tibble: 1 x 1
##   rtCOR
##   <dbl>
## 1 0.189
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_pre-degree`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>% 
  summarize(rtCOR=cor(`mr3d_rt_pre-degree`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.487
mr3d_rt_grade_terp_wide %>% 
  filter(`mr3d_rt_2nd year`!= "NA") %>% 
  filter(`grade_terp_2nd year` != "NA") %>%   
  summarize(rtCOR=cor(`mr3d_rt_2nd year`, 
                       `grade_terp_2nd year`))
## # A tibble: 1 x 1
##    rtCOR
##    <dbl>
## 1 -0.184

Barratt Impulsiveness Scale vs Interpreting Grades

Total Impulsiveness
# Create wider pivot table
bis_tot_grade_terp_wide <- apt %>% 
  select(session, group, ppt, bis_tot, grade_terp) %>% 
  tidyr::pivot_wider(
    names_from = session,
    values_from = c(bis_tot, grade_terp))

# Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study predict Interpreting Grades at the end of 2nd year?
bis_tot_grade_terp_wide %>%
  filter(`bis_tot_2nd year` != "na") %>% 
  filter(`grade_terp_2nd year` != "na") %>% 
  ggplot(aes(x = `bis_tot_2nd year`, y = `grade_terp_2nd year`)) +
  geom_point() +
  geom_smooth(method= "lm") +
  theme_minimal() +
  labs(title= "Does Total Impulsiveness on the Barratt Impulsiveness Scale after 2 years of study\npredict Interpreting Grades at the end of 2nd year?", y = "2nd year Interpreting grade", x = " ")
## `geom_smooth()` using formula 'y ~ x'

Not sure why geom_smooth() line does not appear in knitted output (works in .Rmd file)

MODELS

What best predicts BSL grades?

#s4ppts <- apt %>% filter(ppt == "HW1041" | "HW1061" | "HW1121" | "HW1081" |
#                           "HW1111" | "HW1091" | "WV2011" | "WV2061" | "WV2081")


( bsl_grade_mdl <- lm(grade_bsl ~ nback_spat + 
                                  mr3d_sats + 
                                  corsi_corr +
                                  kirk_acc + 
                                  kbit_acc + 
                                  dspan_corr,
                                  data = apt) ) 
## 
## Call:
## lm(formula = grade_bsl ~ nback_spat + mr3d_sats + corsi_corr + 
##     kirk_acc + kbit_acc + dspan_corr, data = apt)
## 
## Coefficients:
## (Intercept)   nback_spat    mr3d_sats   corsi_corr     kirk_acc     kbit_acc  
##     297.039     -266.145        6.222       -3.214       63.021      -39.777  
##  dspan_corr  
##     -36.297
summary(bsl_grade_mdl)
## 
## Call:
## lm(formula = grade_bsl ~ nback_spat + mr3d_sats + corsi_corr + 
##     kirk_acc + kbit_acc + dspan_corr, data = apt)
## 
## Residuals:
##       73       77       78       81       83       85       86       88 
##  1.77554  0.93304 -2.02324 -0.31361 -0.87932 -0.09685  0.05466  0.84488 
##       89       95 
##  2.51948 -2.81457 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  297.039     50.788   5.849  0.00996 **
## nback_spat  -266.145     72.121  -3.690  0.03451 * 
## mr3d_sats      6.222      1.128   5.514  0.01175 * 
## corsi_corr    -3.214      1.517  -2.119  0.12433   
## kirk_acc      63.021     17.085   3.689  0.03455 * 
## kbit_acc     -39.777     45.853  -0.867  0.44950   
## dspan_corr   -36.297     15.243  -2.381  0.09752 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.827 on 3 degrees of freedom
##   (122 observations deleted due to missingness)
## Multiple R-squared:  0.9643, Adjusted R-squared:  0.8929 
## F-statistic:  13.5 on 6 and 3 DF,  p-value: 0.02828
# but is only being fit on 11 observations rn.....


( terp_grade_mdl <- lm(grade_terp ~ nback_spat + 
                                    mr3d_sats + 
                                    corsi_corr +
                                    kirk_acc + 
                                    kbit_acc + 
                                    dspan_corr,
                                    data = apt) )
## 
## Call:
## lm(formula = grade_terp ~ nback_spat + mr3d_sats + corsi_corr + 
##     kirk_acc + kbit_acc + dspan_corr, data = apt)
## 
## Coefficients:
## (Intercept)   nback_spat    mr3d_sats   corsi_corr     kirk_acc     kbit_acc  
##     298.804     -220.487        5.524       -5.475       82.897      -80.417  
##  dspan_corr  
##     -34.180
summary(terp_grade_mdl)
## 
## Call:
## lm(formula = grade_terp ~ nback_spat + mr3d_sats + corsi_corr + 
##     kirk_acc + kbit_acc + dspan_corr, data = apt)
## 
## Residuals:
##      73      77      78      81      83      85      86      88      89      95 
##  3.4474  0.5891 -2.3422  0.2106 -4.1558 -3.4497  1.7365  0.5756  4.5857 -1.1973 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  298.804     88.449   3.378   0.0431 *
## nback_spat  -220.487    125.602  -1.755   0.1774  
## mr3d_sats      5.524      1.965   2.811   0.0672 .
## corsi_corr    -5.475      2.641  -2.073   0.1299  
## kirk_acc      82.897     29.755   2.786   0.0686 .
## kbit_acc     -80.417     79.854  -1.007   0.3881  
## dspan_corr   -34.180     26.547  -1.288   0.2882  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.924 on 3 degrees of freedom
##   (122 observations deleted due to missingness)
## Multiple R-squared:  0.9128, Adjusted R-squared:  0.7384 
## F-statistic: 5.233 on 6 and 3 DF,  p-value: 0.1012
# but is only being fit on 11 observations rn.....

# For SRT scores, model doesn't work because no grades yet at final session.
( srt_mdl <- lm(bsl_srt ~ nback_spat + 
                          mr3d_sats + 
                          corsi_corr +
                          kirk_acc + 
                          kbit_acc + 
                          dspan_corr,
                          data = apt) )
## 
## Call:
## lm(formula = bsl_srt ~ nback_spat + mr3d_sats + corsi_corr + 
##     kirk_acc + kbit_acc + dspan_corr, data = apt)
## 
## Coefficients:
## (Intercept)   nback_spat    mr3d_sats   corsi_corr     kirk_acc     kbit_acc  
##    -1050.33      1672.93       -35.97       -13.07           NA           NA  
##  dspan_corr  
##          NA
summary(srt_mdl)
## 
## Call:
## lm(formula = bsl_srt ~ nback_spat + mr3d_sats + corsi_corr + 
##     kirk_acc + kbit_acc + dspan_corr, data = apt)
## 
## Residuals:
## ALL 4 residuals are 0: no residual degrees of freedom!
## 
## Coefficients: (3 not defined because of singularities)
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1050.33         NA      NA       NA
## nback_spat   1672.93         NA      NA       NA
## mr3d_sats     -35.97         NA      NA       NA
## corsi_corr    -13.07         NA      NA       NA
## kirk_acc          NA         NA      NA       NA
## kbit_acc          NA         NA      NA       NA
## dspan_corr        NA         NA      NA       NA
## 
## Residual standard error: NaN on 0 degrees of freedom
##   (128 observations deleted due to missingness)
## Multiple R-squared:      1,  Adjusted R-squared:    NaN 
## F-statistic:   NaN on 3 and 0 DF,  p-value: NA

Factor Analysis

reduce tibble to just independent variables:

# apt <- select(apt, -session, -group, -ppt, -copy_score, -srt_score, -town_map, -bsl_grade)

filter out rows with incomplete data

#apt_reduced <- filter(apt, corsi_corr != "na")
#apt_reduced <- filter(apt_reduced, nback_spat != "na")
#apt_reduced <- filter(apt_reduced, kirk_ceil != "na")

reduce to just four tasks that were done at all 3 sessions

#apt_reduced <- select(apt_reduced, nback_lett:kbit_acc)

FA using psych package

# fapsych <- fa(apt_reduced, nfactors=3, rotate="oblimin", scores="regression", residuals=FALSE, fm="minres")

run factor analysis

# FA <- factanal(apt_reduced, factors=2, rotation="varimax", scores="regression")